<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=utf-8" />
    <title>
      6.49.&nbsp;E2fsprogs-1.43.4
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body class="lfs" id="lfs-8.0">
    <div class="navheader">
      <h4>
        Linux From Scratch - Version 8.0
      </h4>
      <h3>
        第六章 安装基本系统软件
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="procps-ng.html" title=
          "Procps-ng-3.3.12">上一页</a>
          <p>
            Procps-ng-3.3.12
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="coreutils.html" title=
          "Coreutils-8.26">下一页</a>
          <p>
            Coreutils-8.26
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "第六章 安装基本系统软件">返回</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0 ">首页</a>
        </li>
      </ul>
    </div>
    <div class="wrap" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="ch-system-e2fsprogs" name="ch-system-e2fsprogs"></a>6.49.
        E2fsprogs-1.43.4
      </h1>
      <div class="package" lang="en" xml:lang="en">
        <p>
          E2fsprogs 软件包包含了处理 <code class="systemitem">ext2</code> 文件系统的工具。
          它也支持 <code class="systemitem">ext3</code> 和 <code class=
          "systemitem">ext4</code> 日志文件系统。
        </p>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">预计构建时间:</strong>
              <span class="segbody">4.1 SBU</span>
            </div>
            <div class="seg">
              <strong class="segtitle">需要磁盘空间:</strong>
              <span class="segbody">57 MB</span>
            </div>
          </div>
        </div>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          6.49.1. E2fsprogs 安装过程
        </h2>
        <p>
          E2fsprogs 文档推荐在源代目录树的子目录下编译：
        </p>
        <pre class="userinput">
<kbd class="command">mkdir -v build
cd build</kbd>
</pre>
        <p>
          准备编译 E2fsprogs:
        </p>
        <pre class="userinput">
<kbd class="command">LIBS=-L/tools/lib                    \
CFLAGS=-I/tools/include              \
PKG_CONFIG_PATH=/tools/lib/pkgconfig \
../configure --prefix=/usr           \
             --bindir=/bin           \
             --with-root-prefix=""   \
             --enable-elf-shlibs     \
             --disable-libblkid      \
             --disable-libuuid       \
             --disable-uuidd         \
             --disable-fsck</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <strong>环境变量和配置选项的意义：</strong>
          </p>
          <dl class="variablelist">
            <dt>
              <span class="term"><em class="parameter"><code>PKG_CONFIG_PATH,
              LIBS, CFLAGS</code></em></span>
            </dt>
            <dd>
              <p>
              　这些变量使 e2fsprogs 可以使用之前构建的
                <a class="xref" href="../chapter05/util-linux.html" title=
                "5.34.&nbsp;Util-linux-2.29.1">第&nbsp;5.34 节,
                &ldquo;Util-linux-2.29.1&rdquo;</a>　软件包一起构建。
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--with-root-prefix=""</code></em> and
              <em class="parameter"><code>--bindir=/bin</code></em></span>
            </dt>
            <dd>
              <p>
                某些程序（例如 <span class="command"><strong>e2fsck</strong></span> 程序）
                是必要程序。有时候，例如当 <code class="filename">/usr</code> 没有挂载的时候， 这些程序仍然需要可以条用。
                他们属于 <code class="filename">/lib</code> 和 <code class="filename">/sbin</code> 目录。
                如果没有将本选项传递给 E2fsprogs 的 configure，这些程序将会安装到
                <code class="filename">/usr</code> 目录。
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--enable-elf-shlibs</code></em></span>
            </dt>
            <dd>
              <p>
                这个选项创建老这个软件包用的一些程序所需的共享库。 
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--disable-*</code></em></span>
            </dt>
            <dd>
              <p>
                这个选项阻止了 E2fsprogs 编译和安装 
                <code class="systemitem">libuuid</code> 和 <code class=
                "systemitem">libblkid</code> 库, <code class=
                "systemitem">uuidd</code> 守护进程, 和 <span class=
                "command"><strong>fsck</strong></span> 的封装, 因为 Util-Linux
                安装了更新的版本。
              </p>
            </dd>
          </dl>
        </div>
        <p>
          编译软件包:
        </p>
        <pre class="userinput">
<kbd class="command">make</kbd>
</pre>
        <p>
          为了设置和运行测试，我们首先需要将一些库从 /tools/lib 链接到一个测试程序可以找到的地方。要运行测试，请输入：
        </p>
        <pre class="userinput">
<kbd class="command">ln -sfv /tools/lib/lib{blk,uu}id.so.1 lib
make LD_LIBRARY_PATH=/tools/lib check</kbd>
</pre>
        <p>
          E2fsprogs 的一个测试将尝试分配 256 MB 的内存，如果你没有那么多的内存，
          请为测试分配足够的交换空间。
          参见 <a class="xref" href="../chapter02/creatingfilesystem.html" title=
          "2.5.&nbsp;在分区上创建一个文件系统">第&nbsp;2.5节,
          &ldquo;在分区上创建一个文件系统&rdquo;</a> 和 
          <a class="xref" href="../chapter02/mounting.html" title=
          "2.7.&nbsp;挂载新的分区">第&nbsp;2.7节,
          &ldquo;挂载新的分区&rdquo;</a> 以了解创建和使能交换分区的详细信息。
        </p>
        <p>
          安装二进制文件，文档和共享库：
        </p>
        <pre class="userinput">
<kbd class="command">make install</kbd>
</pre>
        <p>
          安装静态库和头文件：
        </p>
        <pre class="userinput">
<kbd class="command">make install-libs</kbd>
</pre>
        <p>
          设置安装的静态库为可写的，之后就可以删除里面的调试符号:
        </p>
        <pre class="userinput">
<kbd class=
"command">chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a</kbd>
</pre>
        <p>
          这个软件包安装了一个压缩的 <code class="filename">.info</code>
          文件，但是没有更新全系统的 <code class=
          "filename">dir</code> 文件。解压这个文件然后更新系统的 <code class="filename">dir</code> 
          文件使用下面的命令。
        </p>
        <pre class="userinput">
<kbd class="command">gunzip -v /usr/share/info/libext2fs.info.gz
install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info</kbd>
</pre>
        <p>
          如果需要，使用下面的命令创建和安装一些额外的文档：
        </p>
        <pre class="userinput">
<kbd class=
"command">makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
install -v -m644 doc/com_err.info /usr/share/info
install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</kbd>
</pre>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="contents-e2fsprogs" name="contents-e2fsprogs"></a>6.49.2.
          E2fsprogs 的内容
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">安装的程序:</strong>
              <span class="segbody">badblocks, chattr, compile_et, debugfs,
              dumpe2fs,e2freefrag, e2fsck, e2image, e2label, e2undo,
              e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4,
              fsck.ext4dev, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2,
              mkfs.ext3, mkfs.ext4, mkfs.ext4dev, mklost+found, resize2fs,
              and tune2fs</span>
            </div>
            <div class="seg">
              <strong class="segtitle">安装的库:</strong>
              <span class="segbody">libcom_err.so, libe2p.so, libext2fs.so,
              and libss.so</span>
            </div>
            <div class="seg">
              <strong class="segtitle">安装的目录:</strong>
              <span class="segbody">/usr/include/e2p, /usr/include/et,
              /usr/include/ext2fs, /usr/include/ss, /usr/share/et, and
              /usr/share/ss</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            简要介绍
          </h3>
          <table border="0" class="variablelist">
            <colgroup>
              <col align="left" valign="top" />
              <col />
            </colgroup>
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="badblocks" name="badblocks"></a><span class=
                    "term"><span class=
                    "command"><strong>badblocks</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    搜索一个设备（通常是一个磁盘分区）的坏块。
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="chattr" name="chattr"></a><span class=
                    "term"><span class=
                    "command"><strong>chattr</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    修改一个在 <code class="systemitem">ext2</code> 文件系统上的文件的属性; 
                    它也可以修改 <code class="systemitem">ext2</code> 的日志版本的
                    <code class="systemitem">ext3</code> 文件系统
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="compile_et" name="compile_et"></a><span class=
                    "term"><span class=
                    "command"><strong>compile_et</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个错误表编译器; 
                    它将一个错误码名称和错误消息的表转换到一个适合<code class=
                    "filename">com_err</code> 库使用 C 语言源文件
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="debugfs" name="debugfs"></a><span class=
                    "term"><span class=
                    "command"><strong>debugfs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个文件系统调试器；
                    它可以检查和修改一个 <code class=
                    "systemitem">ext2</code> 文件系统的状态
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="dumpe2fs" name="dumpe2fs"></a><span class=
                    "term"><span class=
                    "command"><strong>dumpe2fs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    打印存在指定设备上的文件系统的超级块和块组信息
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="e2freefrag" name="e2freefrag"></a><span class=
                    "term"><span class=
                    "command"><strong>e2freefrag</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    报告空白空间的碎片信息 
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="e2fsck" name="e2fsck"></a><span class=
                    "term"><span class=
                    "command"><strong>e2fsck</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用于检查，也可修复 <code class=
                    "systemitem">ext2</code> 文件系统和 <code class=
                    "systemitem">ext3</code> 文件系统
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="e2image" name="e2image"></a><span class=
                    "term"><span class=
                    "command"><strong>e2image</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用于保存重要的 <code class=
                    "systemitem">ext2</code> 文件系统数据到文件
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="e2label" name="e2label"></a><span class=
                    "term"><span class=
                    "command"><strong>e2label</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    显示或修改在指定设备上的
                    <code class="systemitem">ext2</code> 文件系统的文件系统标签
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="e2undo" name="e2undo"></a><span class=
                    "term"><span class=
                    "command"><strong>e2undo</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    重做在一个设备上发现的 ext2/ext3/ext4 文件系统的 undo_log 
                    [这可以用于撤销一个 e2fsprogs 程序的失败操作]
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="e4defrag" name="e4defrag"></a><span class=
                    "term"><span class=
                    "command"><strong>e4defrag</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    ext4 文件系统的在线碎片整理
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="filefrag" name="filefrag"></a><span class=
                    "term"><span class=
                    "command"><strong>filefrag</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    报告一个指定的文件可能有多碎片化
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="fsck.ext2" name="fsck.ext2"></a><span class=
                    "term"><span class=
                    "command"><strong>fsck.ext2</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认检查 <code class="systemitem">ext2</code>
                    文件系统，它是 <span class=
                    "command"><strong>e2fsck</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="fsck.ext3" name="fsck.ext3"></a><span class=
                    "term"><span class=
                    "command"><strong>fsck.ext3</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认检查 <code class="systemitem">ext3</code>
                    文件系统，它是 <span class=
                    "command"><strong>e2fsck</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="fsck.ext4" name="fsck.ext4"></a><span class=
                    "term"><span class=
                    "command"><strong>fsck.ext4</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认检查 <code class="systemitem">ext4</code>
                    文件系统，它是 <span class=
                    "command"><strong>e2fsck</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="fsck.ext4dev" name="fsck.ext4dev"></a><span class=
                    "term"><span class=
                    "command"><strong>fsck.ext4dev</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认检查 <code class="systemitem">ext4</code>
                    开发版文件系统，它是 <span class=
                    "command"><strong>e2fsck</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="logsave" name="logsave"></a><span class=
                    "term"><span class=
                    "command"><strong>logsave</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    在一个日志文件中保存一个命令的输出
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="lsattr" name="lsattr"></a><span class=
                    "term"><span class=
                    "command"><strong>lsattr</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    列出在一个第二拓展文件系统上的文件的属性
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mk_cmds" name="mk_cmds"></a><span class=
                    "term"><span class=
                    "command"><strong>mk_cmds</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    转换一个命令名和帮助信息的表格到一个适合 <code class=
                    "filename">libss</code> 子系统库使用的 C 语言源文件
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mke2fs" name="mke2fs"></a><span class=
                    "term"><span class=
                    "command"><strong>mke2fs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    在指定设备上创建一个 <code class="systemitem">ext2</code> 文件系统或 
                    <code class="systemitem">ext3</code> 文件系统
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mkfs.ext2" name="mkfs.ext2"></a><span class=
                    "term"><span class=
                    "command"><strong>mkfs.ext2</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认创建 <code class="systemitem">ext2</code>
                    文件系统，它是 <span class=
                    "command"><strong>mke2fs</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mkfs.ext3" name="mkfs.ext3"></a><span class=
                    "term"><span class=
                    "command"><strong>mkfs.ext3</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认创建 <code class="systemitem">ext3</code>
                    文件系统，它是 <span class=
                    "command"><strong>mke2fs</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mkfs.ext4" name="mkfs.ext4"></a><span class=
                    "term"><span class=
                    "command"><strong>mkfs.ext4</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认创建 <code class="systemitem">ext4</code>
                    文件系统，它是 <span class=
                    "command"><strong>mke2fs</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mkfs.ext4dev" name="mkfs.ext4dev"></a><span class=
                    "term"><span class=
                    "command"><strong>mkfs.ext4dev</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    默认创建 <code class="systemitem">ext4</code>
                    开发版文件系统，它是 <span class=
                    "command"><strong>mke2fs</strong></span> 的一个硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mklost-found" name="mklost-found"></a><span class=
                    "term"><span class=
                    "command"><strong>mklost+found</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用于在一个 <code class="systemitem">ext2</code> 文件系统上创建一个
                    <code class="filename">lost+found</code> 目录
                    它在该目录下预分配了磁盘块以减轻 <span class=
                    "command"><strong>e2fsck</strong></span> 的任务
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="resize2fs" name="resize2fs"></a><span class=
                    "term"><span class=
                    "command"><strong>resize2fs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用于扩大或缩小一个 <code class=
                    "systemitem">ext2</code> 文件系统
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="tune2fs" name="tune2fs"></a><span class=
                    "term"><span class=
                    "command"><strong>tune2fs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    在一个 <code class=
                    "systemitem">ext2</code> 文件系统上调整可调文件系统参数
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libcom_err" name="libcom_err"></a><span class=
                    "term"><code class="filename">libcom_err</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    通用的错误显示函数库
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libe2p" name="libe2p"></a><span class=
                    "term"><code class="filename">libe2p</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    被 <span class=
                    "command"><strong>dumpe2fs</strong></span>, <span class=
                    "command"><strong>chattr</strong></span>, 和 
                    <span class="command"><strong>lsattr</strong></span> 使用
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libext2fs" name="libext2fs"></a><span class=
                    "term"><code class="filename">libext2fs</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    包括了可供用户程序操作一个 <code class="systemitem">ext2</code> 
                    文件系统的函数库
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libss" name="libss"></a><span class=
                    "term"><code class="filename">libss</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    被 <span class=
                    "command"><strong>debugfs</strong></span> 使用
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="procps-ng.html" title=
          "Procps-ng-3.3.12">上一页</a>
          <p>
            Procps-ng-3.3.12
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="coreutils.html" title=
          "Coreutils-8.26">下一页</a>
          <p>
            Coreutils-8.26
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "第六章 安装基本系统软件">返回</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0 ">首页</a>
        </li>
      </ul>
    </div>
  </body>
</html>
